// pages/face_register/face_register.js
import { uploadImage } from '../../api/api';

Page({
    data: {
        faceImage: '',
        isLoading: false,
        loadingText: '正在处理...'
    },

    onLoad: function() {
        // 获取摄像头权限
        wx.authorize({
            scope: 'scope.camera',
            success: () => {
                // 授权成功
            },
            fail: () => {
                wx.showToast({
                    title: '请授权摄像头权限',
                    icon: 'none',
                    duration: 2000
                });
            }
        });
    },

    // 拍照
    takePhoto: function() {
        const ctx = wx.createCameraContext();
        ctx.takePhoto({
            quality: 'high',
            success: (res) => {
                this.setData({
                    faceImage: res.tempImagePath
                });
            },
            fail: (error) => {
                console.error('拍照失败', error);
                wx.showToast({
                    title: '拍照失败，请重试',
                    icon: 'none'
                });
            }
        });
    },

    // 重新拍照
    retakePhoto: function() {
        this.setData({
            faceImage: ''
        });
    },

    // 提交照片
    submitPhoto: function() {
        if (!this.data.faceImage) {
            wx.showToast({
                title: '请先拍摄人脸照片',
                icon: 'none'
            });
            return;
        }

        this.setData({
            isLoading: true,
            loadingText: '正在上传人脸信息...'
        });
        let userInfo = wx.getStorageSync('userInfo');

        // 使用图片上传API上传人脸图片
        uploadImage({
            file: this.data.faceImage,
            userId: userInfo.userId,
            type: 'face',
            success: (data) => {
                // 上传成功后，调用人脸注册接口
                this.setData({
                    isLoading: false,
                });
                wx.showToast({
                    title: "上传成功",
                    icon: "success",
                });
                // 将 data.url 缓存给 
                userInfo.imageUrl = data.url;
                wx.setStorageSync('userInfo', userInfo);
                // 返回上一页
                wx.navigateBack();
            },
            fail: (error) => {
                this.setData({
                    isLoading: false
                });
                wx.showToast({
                    title: error.errMsg || '上传失败，请重试',
                    icon: 'none'
                });
            }
        });
    },

    // 相机错误
    cameraError: function(e) {
        console.error('相机错误', e.detail);
        wx.showToast({
            title: '相机启动失败，请检查权限',
            icon: 'none'
        });
    }
});